<div class='title'>模块规范</div>
<div class='text indent'>
    Jet提供了自己的异步模块加载方式，不遵循AMD规范。值得注意的是，因为需要使用ajax请求加载模块，所以Jet的js模块化完整功能只有在http服务器中才可以使用。
    如果您不是在http服务器环境中使用模块化，也可以使用script标签加载所有模块，然后就可以使用 import 和 $get 方法使用模块。
</div>
<div class="sub">
    <div class='title'>/src/js目录</div>
    <div class='text'>
        在Jet中，一个js文件就是一个模块，且模块必须放在/src/js目录下，可以包含子目录。
    </div>
    <div class='title'>define</div>
    <div class='text'>
        使用 <span class='link' Jrouter='/module/define'>Jet.define()</span> 定义一个模块。
    </div>
    <div class='title'>export</div>
    <div class='text'>
        在 Jet.define() 的回调函数中使用 <span class='link' Jrouter='/module/export'>Jet.export()</span> 输出一个模块。
    </div>
    <div class='title'>import</div>
    <div class='text'>
        使用 <span class='link' Jrouter='/module/import'>Jet.import()</span> 或者在Jet组件中使用 this.import() 引入一个模块。并将引入的模块加入 Jet.module 集合中。
    </div>
    <div class='title'>module</div>
    <div class='text'>
        <span class='link' Jrouter='/module/module'>Jet.module</span> 存储了所有已经引用过的模块。再次引用相同模块时会从该集合中直接返回对应模块。
        在Jet组件中， this.module 存储了在当前Jet组件中引入过的模块。
    </div>
    <div class='title'>get</div>
    <div class='text'>
        使用 <span class='link' Jrouter='/module/get'>Jet.get()</span> 或者在Jet组件中使用 this.$get()  可以直接获取已经引入过的模块。
    </div>
    <div class='title'>as关键字</div>
    <div class='text'>
        在定义模块的依赖模块和加载模块时，可以使用 as 关键字为模块起一个别名，以方便调用。
    </div>
    <div class='title'>new关键字</div>
    <div class='text'>
        值得注意的是Jet的模块化中，如果多次引用相同的模块，得到的几个模块对象指向的是同一个对象，也就是说，几个模块共用一套数据，任意一个模块对象的数据被改变，其他的模块对象的值都会被改变。
        若要改变这种情况，使得引用相同的模块会产生不同的对象，那么请使用 new 关键字。每次使用new关键字都会产生一个独立的新的模块，而不会引用已经加载生成过的模块，不过独立模块不会被加入到module集合中，只可在回调函数中使用。
        详细用法请参考后续教程。
    </div>
</div>
